System and method of converting edge record based graphics to polygon based graphics

ABSTRACT

A method and graphics converter for converting edge record based graphics to polygon based graphics is provided. In accordance with one embodiment, there is provided a method for converting graphic object data that defines a graphic object for delivery to wireless devices connected to a wireless communications network, the method comprising: converting the graphic object data from a path format to a second format, the path format including path elements that are each associated with a fill style and define one or more polygon shapes at least partially filled with the associated fill style, the path elements collectively defining the graphic object; converting the graphic object data from the path format to a second format, the converting including: redefining the polygon shapes defined by the path elements as groups of triangles; and combining at least some triangles in the groups of triangles into further polygon shapes that fall within complexity thresholds based on predetermined capabilities of a wireless device to which the converted graphic object data will be delivered.

RELATED APPLICATION DATA

The present application is a continuation of U.S. patent applicationSer. No. 12/403,497, filed Mar. 13, 2009, now U.S. Pat. No. 7,999,805,issued Aug. 16, 2011, which is a continuation of U.S. patent applicationSer. No. 10/825,130, filed Apr. 16, 2004, now U.S. Pat. No. 7,525,544,issued Apr. 28, 2009, which claims priority to United Kingdom PatentApplication No. GB 0308949.7, filed Apr. 17, 2003, the entire contentsof these applications being incorporated herein by reference.

TECHNICAL FIELD

The present disclosure relates to computer graphics files and theconversion thereof, and more particularly to a method and graphicsconverter for converting edge record based graphics to polygon basedgraphics.

BACKGROUND

Various types of formats are used to represent computer graphics. As theuse of resource limited media devices such as personal digitalassistants (PDAs), cell phones, pagers, organizers and wireless mobilecomputing devices, grows, the interest in displaying graphics images onsuch devices also grows. However, such devices frequently have limitedstorage and processing power, and where applicable, limitedcommunication bandwidth. As a result, such devices can benefit from theuse of graphic formats that are different from those commonly used inrelatively resource rich devices. Thus, it would be advantageous toprovide a system and method for converting one format of graphic toanother format suitable for a resource limited device.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the present disclosure will now be described, by way ofexample only, with reference to the attached Figures, wherein:

FIG. 1 is a block diagram showing a format conversion system accordingto embodiments of the present disclosure;

FIG. 2 is a block diagram showing a first format converter of the formatconversion system of FIG. 1;

FIG. 3 is a block diagram of a representative graphic object forexplaining aspects of the present disclosure;

FIG. 4 is a representation of a source graphic file describing thegraphic object of FIG. 3;

FIG. 5 is a representation of a fill style table describing the graphicobject of FIG. 3;

FIG. 6 is a block diagram of a process used to create a fill style tableaccording to embodiments of the present disclosure;

FIG. 7 is a representation of an intermediate graphic file describingthe graphic object of FIG. 3;

FIG. 8 is an exploded view of the graphic object of FIG. 3;

FIG. 9 is a block diagram showing a second format converter of theformat conversion system of FIG. 1;

FIG. 10 is a block diagram of a process used to combine triangulatedregions into polygons, according to embodiments of the presentdisclosure; and

FIG. 11 is a further exploded view of the graphic object of FIG. 3.

Like reference numerals are used throughout the Figures to denotesimilar elements and features.

DETAILED DESCRIPTION

Embodiments of the present disclosure provide a system and method forconverting one format of a graphic to another format.

According to an example embodiment, there is provided a method forconverting graphic object data that defines a graphic object fordelivery to wireless devices connected to a wireless communicationsnetwork, the method comprising: converting the graphic object data froma path format to a second format, the path format including pathelements that are each associated with a fill style and define one ormore polygon shapes at least partially filled with the associated fillstyle, the path elements collectively defining the graphic object;converting the graphic object data from the path format to a secondformat, the converting including: redefining the polygon shapes definedby the path elements as groups of triangles; and combining at least sometriangles in the groups of triangles into further polygon shapes thatfall within complexity thresholds based on predetermined capabilities ofa wireless device to which the converted graphic object data will bedelivered.

According to another example embodiment, there is provided a graphicsconverter for converting graphic object data defining a graphic objecthaving associated fill styles from a path format to a second format, thepath format including path elements that are each associated with a fillstyle and define one or more polygon shapes at least partially filledwith the associated fill style, the path elements collectively definingthe graphic object, the graphics converter comprising: a triangulationmodule for redefining the polygon shapes defined by the path elements asgroups of triangles; and a combining module for combining at least someof triangles in the groups of triangles into further polygon shapes thatfall within complexity thresholds based on predetermined capabilities ofa wireless device to which the converted graphic object data will bedelivered.

According to a further example embodiment, there is provided a computersoftware product having a computer-readable medium storing computerexecutable instructions for converting graphic object data that definesa graphic object, the computer executable instructions comprisinginstructions for performing the methods described in the presentdisclosure.

Other aspects and features of the present disclosure will becomeapparent to those ordinarily skilled in the art upon review of thefollowing description of specific embodiments.

Referring to the drawings, FIG. 1 is a block diagram of a graphic formatconversion system according to example embodiments of the presentdisclosure. The system includes a graphic converter 100 that converts asource graphic 102 that is in a first format to a converted graphic 104that is in a second format. The source graphic 102 is an electronic filecontaining graphic object data or information that can be used by asuitably configured rendering device to display one or more graphicsobjects. In an example embodiment, the source graphic 102 containsinformation in an edge record format to define the graphic objects. Moreparticularly, in the presently described example embodiment, the sourcegraphic 102 is a .SWF file conforming to the flash file format specifiedby Macromedia, Inc. The converted graphic 104 is an electronic filecontaining converted information that can be used by a viewing device112 to display the one or more graphics objects. In the presentlydescribed embodiment, the converted graphic 104 is binary format file inwhich the graphics objects are defined as a series of polygon shapes,each associated with a fill style.

The first format converter 106 and the second format converter 110 ofthe graphic converter 100 are implemented as computer software which isexecuted by one or more computers. In various embodiments, the first andsecond format converters 106, 110 are both implemented by software onthe same computer, or are implemented by software on differentcomputers, with the intermediate graphic 108 being transmitted orotherwise transferred between the computers.

The viewing device 112 is in various embodiments a data communicationsdevice, a multiple mode communications device configured for both dataand voice communication, a mobile communications device, a PDA enabledfor wireless communications, a 1-way or 2-way pager, a computer system,and/or a type of fixed or wireless communications device. The viewingdevice 112 receives the converted graphic 104 over a communication link114, which includes in various embodiments a wireless network, a wirednetwork, and/or dedicated or local communications lines or conductors.The viewing device 112 includes an application such as a media enginethat is configured to interpret the information contained in theconverted graphic 104 and generate a visible image on a screen of theviewing device representative of the information contained in theconverted graphic 104.

FIG. 2 is a block diagram of the first format converter 106, which in anexample embodiment is configured to convert a .SWF flash file sourcegraphic 102 into a SVG (scalable vector graphics) format intermediategraphic 108. As known in the art SVG is a vector graphics file formatthat enables two-dimensional images to be displayed in XML pages. SVGimages are created through text-based commands formatted to comply withXML specifications. An SVG standard, SVG 1.0 specification has beenrecommended by W3C (World Wide Web Consortium). In various embodiments,the first and second format converters 106, 110 may not support all SVGspecified features, however the features they do support conform to SVGspecifications.

As shown in FIG. 2, the first format converter 106 includes first andsecond sub-converters 116, 118. The first sub-converter 116 isconfigured to convert the edge records that are contained in the .SWFflash file source graphic 102 into a fill style table 120, which is thenconverted by the second sub-converter 118 into SVG intermediate graphic108.

For the purpose of explaining embodiments of the present disclosure,FIG. 3 shows a representation of an example of a two dimensionalgraphical object 300. The graphical object 300 comprises a centralsquare 302, overlapped on diagonal corners by two smaller squares 304and 306. The central square 302 has a square opening 308 in its center.The smaller squares 304 and 306 are filled with blue (as denoted by “B”in FIG. 3), the central square 302 is filled with red (as denoted by “R”in FIG. 3), and the overlap regions between the squares are filled withgreen (as denoted by “G” in FIG. 3). The square opening 308 has no fillstyle. The object 300 has 24 edges, labelled by reference numerals 1 to24 in FIG. 3. An edge is a line in the object 300 that has start and endpoints at locations where the line meets at a vertex with another lineor where the line terminates without meeting another line. Each vertex(i.e. point where two or more edges meet) of the object 300 in FIG. 3 islabelled with absolute (X,Y) coordinates.

FIG. 4 shows an example source graphic file 102A showing a series ofedge records 124, each associated with an edge 1 to 24 of the graphicobject 300. The file 102A is an XML representation of a .SWF flash fileedge record format used in source graphic 102 to describe the graphicobject 300—here the use of XML is purely for illustrative purposes; .SWFis a binary file format, and thus example file 102A is a human readabledescription of the .SWF source graphic file for graphic object 300. Ascan be seen in FIG. 4, the source file 102A includes fill style indexes126 for each of the fill styles (blue, green and red, in the illustratedexample) used in the graphic object 300. The source file 102A includes“StyleChangeRecords” 127 that associate the edge records for each edge1-24 with the fill style(s) that the respective edge borders. The sourcefile 102A also includes a LineStyle command that specifies thecharacteristics of lines used around the edges of the fill regions. Thesource graphic file 102A defines a starting absolute (X,Y) coordinatevalue in the display plane, namely vertex (100, 80), and defines thefirst edge 1 by specifying an (X,Y) delta value (20,0) that specifiesthe end point of first edge 1 relative to the starting vertex. Edge 2 isthen defined by a delta value (0,40) that specifies the end point of thefirst edge 2 relative to its starting point (which is the end of firstedge 1). The remaining edges are defined in a similar manner, with“moveTo” commands being used where the starting point of an edge doesnot coincide with the end of a previously defined edge (see for example,the moveTo command between edge record 16 and edge record 17 in FIG. 4).The edge records can appear in any particular order, and the firstsub-converter 116 makes no assumptions about the order of edge records.The edge records can define fill on both sides (see edges 21 and 22 forexample).

The first sub-converter 116 is configured to read the information in thesource graphic 102 and construct and populate a corresponding fill styletable 120. FIG. 5 shows an example fill style table 120A representativeof the output of first sub-converter 116 in response to the sourcegraphic file 102A. The fill style table 120A includes a sub-table 128associated with each unique fill style (blue, green, red in the presentexample) specified in the source graphic file 102A. Each of thesub-tables 128 includes edge connection data 130 that describes theperimeter(s) of any areas that are filled with the fill style associatedwith the respective sub-tables. For example, in graphic object 300,there are two blue fill style region areas, and the edge connection data130 for the blue fill style defines the perimeters of the two blue fillstyle region areas. The connection data 130 for each of the fill stylesincludes a list 132 of each unique vertex that borders the regions thatare filled with the associated fill style. Associated with each vertexentry is a list 134 of the edges that are outgoing from each vertex thatborders the associated fill style regions. The lists 134 of edges inconnection data 130 includes, for each edge, information defining the“to” vertex that the edge ends at—for example, the first list 134 intable 120A identifies edges 1 and 13 as outgoing from vertex (100, 80)and having “to” vertices (120, 80) and (100,100), respectively.

In an example embodiment, the first sub-converter 116 performs process600 shown in FIG. 6 in respect of each of the edge records in sourcegraphic 102 to create the fill style table. As indicated in step 602,the first sub-converter 116 reads an edge record 124 in the sourcegraphic 102 and identifies the “from” and “to” vertices of the subjectedge. As the sub-converter 116 processes each edge record, it identifiesthe “from” vertex of each edge by keeping track of the absolutecoordinates provided in the “MoveTo” commands that are embedded inselected StyleChange Records 127, and also by tracking the “delta”commands that are contained in the edge records 124. In step 602, the“to” vertex for the subject edge is determined by adding the deltacoordinates provided in the subject edge record to the coordinates ofthe “from” vertex of the edge. By tracking StyleChange Records 127, thesub-converter 116 tracks the fill style(s) that the subject edge bordersagainst—as can be appreciated from FIG. 3, a single edge (for example,edge 13) can border against and thus be associated with more than onefill style.

As indicated in step 604, once the “from” and “to” vertices of thesubject edge have been identified, the sub-converter 116 looks at thesub-table 128 of the fill style associated with the subject edge todetermine if the “from” vertex is already listed in the sub-table andwill create a new unique “from” vertex entry in the list 132 of theappropriate fill style sub-table 128 if the “from” vertex has not yetbeen previously added. In instances where the edge is associated withtwo fill styles, the “from” vertex is included in the unique vertex list132 of each of the associated fill style sub-tables 128. As indicated instep 606, information identifying the subject edge, including it's “to”vertex is then added to the outgoing edges list 134 of the “from” vertexof the subject edge. In instances where the edge is associated with twofill styles, the information is added to the outgoing edge list 130 ofthe “from” vertex in each of the associated fill style sub-tables 128.Steps 602, 604 and 606 are repeated until all edge records in the sourcegraphic have been processed. In the example embodiment illustratedthrough source graphic file 102A and fill style table 120A, the deltacoordinate values in the edge records of source graphic file 102A areconverted to absolute X,Y coordinate values for the vertices listed infill style table 120A. It will be understood that the informationcontained in fill style table 120A represents the example graphic object300. Line Style information is in various embodiments identified in theedge connection data 130.

The second sub-converter 118 of the first format converter 106 isconfigured to convert the fill style table 120 into SVG compatibleintermediate graphic 108. For explanatory purposes, FIG. 7 shows the XMLSVG source code of an intermediate graphic file 108A that is generatedby the second sub-converter 118 in response to fill style table 120A,and which describes graphic object 300. The intermediate graphic file108A includes an SVG path element 136(1), 136(2) and 136(3) for each ofthe unique fill styles (blue, green, red, respectively) found in thefill style table 120. Each SVG path element 136(i), where 1≦i≦3 in thedescribed example, describes a fill region (which may have multiplediscrete parts) for the fill type that it is associated with. Theintermediate graphic file 108A also includes a path element 138 thatdescribes the “stroke”, which defines the lines that surround the edgesof the fill regions. In example graphic object 300, a stroke having ablack color and a width of one pixel is used throughout the object.

The following table represents in pseudo code an example method used bythe second sub-converter 118 to convert the fill style table 120 intointermediate graphic 108:

TABLE 1 Method for Converting Fill Style Table to SVG IntermediateGraphic for each fill style in the fill style table: begin writing anSVG ‘path’ element for that fill style obtain the edge connection datafor that fill style reset all edges to “unvisited” for each vertex inthe edge connection data: obtain the list of outgoing edges for thatvertex for each edge, L, in the list: visit(L)  finish writing the SVG‘path’ element procedure visit (edge E)  if (E is unvisited) mark E as“visited” write the SVG drawing command represented by E obtain the listof outgoing edges for the “to” vertex of E find the first unvisitededge, M, in the list and, if found: visit(M)

As can be appreciated from FIG. 7, each SVG path element 136(i)effectively describes one or more polygons that are filled with the fillstyle that the path element is associated with. By way of example, FIG.8 shows an exploded view of graphic object 300. Path element 136(1)describes the blue fill style region which includes polygons 320 and 322that are filled with blue fill style. Path element 136(2) describes thegreen fill style region that includes polygons 324 and 326 that arefilled with green fill style. Path element 136(3) describes the red fillstyle region, which includes polygon 328 that is filled with red andwhich includes an island contour that defines non-fill region 308. Path138 describes the “stroke” surrounding the fill regions.

As can be appreciated from FIGS. 7 and 8, the SVG path elements of theintermediate graphic can define relatively complex polygons. The secondformat converter 110 is configured to compile the SVG intermediategraphic 108 into less complex polygons that can be efficiently used by amedia engine of the viewing device 112 to reproduce the graphic object300. With reference to FIG. 9, the second format converter includes atriangulation module 150 and a combining module 152. The triangulationmodule 150 resolves the polygon shapes that are defined by each of theSVG path elements of the intermediate graphic 108 to output datadefining a series of triangles that are each associated with a fillstyle. The information defining the triangles and associated fill stylesare output as electronic triangulated graphic data 154.

By way of example, FIG. 8 includes dashed lines showing one possibletriangulation of polygons 320, 322, 324, 326 and 328 of graphic object300 performed by triangulation module 150. In the illustrated example,blue fill style polygons 320 and 322 have been redefined as trianglesB1-B4 and B5-B8, respectively. Green fill style polygons 324 and 326have been redefined as triangles G1-G2 and G3-G4, respectively. Red fillstyle polygon 328 has been redefined as triangles R1-R12. Varioustriangulation methods can be used in various embodiments to triangulatethe polygons defined in the SVG intermediate graphic. In an exampleembodiment, a triangulation method based on the FIST (FastIndustrial-Strength Triangulation of Polygons) algorithm as described inHeld, M., FIST: Fast Industrial-Strength Triangulation of Polygons,Algorithmica (2001) 30: 563-596, DOI: 10.1007/s00453-001-0028-4, is usedby triangulation module 150.

In an example embodiment the triangulated graphic data 154 includesrecords that define the edges and vertices and associated fill styles ofeach of the triangles that make up the subject graphic object. In orderto reduce the amount of data required to define the subject graphicobject, the combining module 152 of the second format converter 110 isconfigured to combine the triangles defined in triangulated graphic data154 into larger polygons that fall within predetermined complexityrestrictions.

FIG. 10 shows a combining process 700 used by combining module 152 in anexample embodiment of the present disclosure. As indicated in step 712,the combining module 152 creates a new polygon record by selecting atriangle from the triangulated graphic data 154 and adding the data thatdefines the triangle to the polygon record. As indicated in step 714,the combining module 152 than determines if there is a same fill styletriangle that borders on the polygon which has not already part of apolygon previously created by the combining module. If there is abordering triangle that has not previously been added to anotherpolygon, the combining module then determines if adding the borderingtriangle to the current polygon would result in a polygon that fallswithin predetermined complexity restrictions (step 716), and if so, itis added to the polygon (step 718), otherwise the bordering triangle isnot added to the polygon. The combining module continues process steps714, 716 and 718 until all bordering triangles that can be added to thepolygon without violating the complexity restrictions have been, afterwhich the combining module closes the polygon (step 720). A new polygonrecord is then created by adding to it a triangle that has notpreviously been added to a polygon, and then steps 714, 716 and 718 areagain iteratively repeated for the new polygon. Process 700 continuesuntil all triangles defined in the triangulated graphic data 154 havebeen added to a polygon (in some cases, the resulting polygon may onlyinclude a single triangle, and in some cases, may include several). Itwill be appreciated that other processes could also be used in additionto or in place of process 700 to consolidate the triangulated graphicdata. The converted graphic 104 output by the combing module 152 define,using polygons, the same fill regions that were defined in triangulationgraphic data, but in a more space-efficient format.

The complexity restrictions that are applied in step 720 are generallyselected based on the capabilities of the media engine at the viewingdevice 112, which in turn will typically depend on the processing andmemory resources available at the viewing device and the bandwidth ofthe communications channel 114. The complexity restrictions orthresholds can vary depending on the requirements of the specificapplication, and in various embodiments are set up to limit the polygonsdefined in converted graphic 104 to polygons that are simple polygons,to polygons having no internal islands, to polygons having only convexvertices, and/or to polygons having fewer than a predetermined number ofedges.

By way of example, FIG. 11 shows a further exploded view of graphicobject 300 in which the previously triangulated fill style regions maybe combined by combining module 118 to form polygons. In red fill styleregion 328, triangles have been combined to form polygons R1+R2, R3+R4,and so on. In green fill style regions 326 and 328, the triangles havebeen combined to form polygons G1+G2 and G3+G4, respectively. Similarly,the triangles associated with blue fill style regions 320 and 322 havebeen combined to form polygons as illustrated. In the example of FIG.11, the complexity restrictions have been applied such that all of theresulting polygons are each simple polygons that each define continuousinternal same fill-style areas without internal islands and which haveno reflex vertices, but rather only convex vertices. The resultingpolygons of FIG. 11 are also each limited to four sides.

It will be appreciated that in computer graphics, curved lines are oftenformed by connecting a series of small edges at angles to each other.Thus, the methods of the present disclosure can also be applied toobjects having what are perceived as curved boundaries.

In some embodiments, the second format converter may not go through theprocess of combining the triangulated graphic data 154, but rather mayuse such data directly for converted graphic 104.

The above-described embodiments of the present disclosure are intendedto be examples only. Alterations, modifications and variations may beeffected to the particular embodiments by those skilled in the artwithout departing from the scope of the present disclosure, which isdefined by the claims appended hereto.

1. A method for rendering a graphics object on a display of a wirelessdevice, the method comprising: receiving, at a receiver of the wirelessdevice, graphics object data defining the graphics object in a binaryformat, the graphics object data in the binary format being created byconverting the graphics object data from a path format, the path formatincluding path elements that are each associated with a fill style anddefine one or more polygon shapes, each polygon shape at least partiallyfilled with the associated fill style, the path elements collectivelydefining the graphics object, the conversion from the path format to thebinary format including redefining the polygon shapes defined by thepath elements as groups of triangles and combining at least sometriangles in the groups of triangles into further polygon shapes thatfall within complexity thresholds based on resources available on thewireless device; interpreting, by a processor of the wireless device,the graphics object data in the binary format to generate an imagerepresentative of the graphics object; and rendering the generated imagerepresentative of the graphics object on the display of the wirelessdevice.
 2. The method of claim 1, wherein, prior to the conversion fromthe path format to the binary format, the graphics object data in thepath format being created by converting the graphics object data from anedge record based format, the edge record based format including aplurality of edge records each defining an edge of the graphic object,the edge records including information associating the defined edgeswith fill styles that the edges border against.
 3. The method of claim2, wherein the conversion from the edge record based format to the pathformat includes: for each fill style, identifying from the edge recordseach unique vertex that borders on the fill style and identifying eachof the outgoing edges from the identified vertices that border on thefill style; and for each fill style, creating the associated pathelement, based on the identified vertices and outgoing edges.
 4. Themethod of claim 3, wherein the path format is a Scalable Vector Graphics(SVG) compatible format.
 5. The method of claim 3, wherein the edgerecord based format is an edge record based flash file format.
 6. Themethod of claim 3, wherein the edge record based format is SWF and thepath format is Scalable Vector Graphics (SVG) format.
 7. The method ofclaim 1, wherein the graphics object data in the binary format includesinformation defining the further polygon shapes.
 8. The method of claim1, wherein the complexity thresholds are selected so that the furtherpolygon shapes each have a continuous interior fill style region withoutinternal island contours.
 9. The method of claim 1, wherein thecomplexity thresholds are selected so that the further polygon shapeseach have only convex vertices.
 10. The method of claim 1, wherein thecomplexity thresholds are selected so that the further polygon shapeseach have under a predetermined number of sides.
 11. The method of claim1, wherein the complexity thresholds are selected so that the furtherpolygon shapes are each simple polygons.
 12. The method of claim 1,wherein the complexity thresholds are selected based on processing ormemory resources available on the wireless device.
 13. The method ofclaim 1, wherein the complexity thresholds are selected based onrequirements of an application being executed on the wireless device.14. A tangible computer program product having a non-transientcomputer-readable medium storing computer executable instructions forexecuting a method for rendering a graphics object on a display of awireless device, the method comprising: receiving, at a receiver of thewireless device, graphics object data defining the graphics object in abinary format, the graphics object data in the binary format beingcreated by converting the graphics object data from a path format, thepath format including path elements that are each associated with a fillstyle and define one or more polygon shapes, each polygon shape at leastpartially filled with the associated fill style, the path elementscollectively defining the graphics object, the conversion from the pathformat to the binary format including redefining the polygon shapesdefined by the path elements as groups of triangles and combining atleast some triangles in the groups of triangles into further polygonshapes that fall within complexity thresholds based on resourcesavailable on the wireless device; interpreting, by a processor of thewireless device, the graphics object data in the binary format togenerate an image representative of the graphics object; and renderingthe generated image representative of the graphics object on the displayof the wireless device.
 15. A wireless device comprising: a receiverconfigured to receive graphics object data defining the graphics objectin a binary format, the graphics object data in the binary format beingcreated by converting the graphics object data from a path format, thepath format including path elements that are each associated with a fillstyle and define one or more polygon shapes, each polygon shape at leastpartially filled with the associated fill style, the path elementscollectively defining the graphics object, the conversion from the pathformat to the binary format including redefining the polygon shapesdefined by the path elements as groups of triangles and combining atleast some triangles in the groups of triangles into further polygonshapes that fall within complexity thresholds based on resourcesavailable on the wireless device; a processor, having associated memory,configured to interpret the graphics object data in the binary format togenerate an image representative of the graphics object and to renderthe generated image representative of the graphics object on the displayof the wireless device.